import java.util.Deque;
import java.util.LinkedList;

/**
 * @author LKQ
 * @date 2022/1/29 13:33
 * @description 暴力模拟,
 */
public class FormalSolution {
    public static void main(String[] args) {
        FormalSolution solution = new FormalSolution();
        solution.findTheWinner(5, 2);
    }
    public int findTheWinner(int n, int k) {
        Deque<Integer> deque = new LinkedList<>();
        for (int i = 1; i <= n; i++) {
            // 初始化参赛者
            deque.offerFirst(i);
        }
        while (deque.size() > 1) {
            // 取模，看每次数几个，轮到哪个幸运儿。
            int x = ((k - 1) % deque.size()) + 1;
            while (x > 0) {
                int lukier = deque.pollLast();
                if (--x > 0) {
                    // 不是刚好撞***口的幸运儿就继续装到队列的尾巴上参与下一次。
                    deque.offerFirst(lukier);
                }
            }
        }
        // n-1轮下来后只剩最后一个欧皇。
        return deque.poll();
    }
}
